package cn.com.bsfit.netty.business;

import cn.com.bsfit.netty.config.base.BaseConfigurable;
import cn.com.bsfit.netty.req.ReqData2MapFacade;
import cn.com.bsfit.netty.resp.BaseResponse;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.Map;

/**
 * 类名 DemoService
 * 描述 业务逻辑处理demo
 *
 * @author 马保国
 * @version 1.0
 * @date 2020/12/29   16:50
 */
public interface BusinessService extends BaseConfigurable {

    /**
     * 真正的业务逻辑处理
     * @param reqMap 请求数据转化后的Map
     * @param reqData2MapFacade reqData2MapFacade
     * @return map
     * @throws Exception 异常
     */
    Map<String, Object> reqHandler(Map<String, Object> reqMap, ReqData2MapFacade reqData2MapFacade) throws Exception;

    /**
     *  默认返回的错误信息(有默认实现)
     * @param errMsg 错误信息
     * @return 错误包装信息
     */
    default Map<String, Object> getBaseResponseError(String errMsg) {
        return BaseResponse.builder().error(BaseResponse.REQ_PARAM_ERR_CODE, errMsg);
    }

}
